package org.example06.ba06;

import org.aspectj.lang.annotation.*;


@Aspect
public class MyAspect {



    @Before(value = "mypt()")
    public  void myBefor(){
        System.out.println("这是前置通知");
        //一般做资源清除动作。
    }

    @After(value = "mypt()")
    public  void myAfter(){
        System.out.println("这是执行最终通知，总是会被执行");
        //一般做资源清除动作。
        }

    /**
     * @Pointcut:定义和管理切入点。如果项目中有多个切入点表达式是重复的，可以复用的。可以使用Pointcut定义
     * 属性：value 切入点表达式
     * 位置：在自定义的方法上面
     * 特点：
     *  当使用@Pointcut定义在一个方法的上面，此时这个方法的名称就是切入点表达式的别名。
     *  其他的通知中，value属性就可以使用这个方法名称。代替切入点表达式
     */
    @Pointcut(value = "execution(* *..SomeServiceImpl.doThird(..))")
    private void mypt(){
    //无需代码
    }
}
